/**
 * 请求实例
 *
 * @author 济南晨霜信息技术有限公司
 * @mobile 18560000860 / 18754137913
 */
import { apiBaseUrl, apiRequestTokenKey, apiResponseTokenKey, apiStorageTokenKey } from "@/settings";
import HiHttp from "@/uni_modules/hi-http";
import { useUserStore } from "@/stores/user";

// 公共接口请求实例
export const hhi = new HiHttp({
    baseURL: apiBaseUrl, // 接口基准路径
    requestTokenKey: apiRequestTokenKey, // 请求时携带的鉴权凭证名称
    responseTokenKey: apiResponseTokenKey, // 接口返回数据中携带的鉴权凭证名称
    storageTokenKey: apiStorageTokenKey, // 存储在本地的鉴权凭证名称
    dataStatusKey: "code", // 数据中表示状态码的字段名称
    dataStatusTextKey: "errMsg", // 数据中表示状态文本的字段名称
    dataSuccessStatusCode: 0, // 数据中表示成功状态的状态码
    // 状态码处理
    codeFunctions: {
        // 用户登录状态失效
        401: function (resp, conf) {
            // 终止/清除所有请求
            hhi?.aborts?.();

            // 清除用户状态数据
            useUserStore()?.clear();

            // 刷新当前页面
            uni.$hiRouter?.refresh();
        }
    }
});
